<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组</title>
    <script>
        //创建数组的两种方式
        //1.利用数组字面量
        var arr = [1,2,3];
        //2.利用new Array()
        var arr1 = new Array();
        //创建了一个空数组，括号里如果放一个参数表示指定数组长度
        //放2,3（两个数以上）则表示放入元素，等价于[2,3]

        //检测是否为数组的方法
        //1. instanceof 运算符 是数组则返回true
        console.log(arr instanceof Array);
        //2. Array.isArray(参数) <-H5新增的，IE9以上才支持
        console.log(Array.isArray(arr));

        //添加数组元素的方法
        //1. push() 在数组末尾添加一个或者多个数组元素
        arr.push(4,'pink');
        console.log(arr);
        //返回值是新数组长度
        //原数组会改变
        //2. unshift() 在数组开头添加一个或者多个数组元素
        arr.unshift('red','haha');
        console.log(arr);
        //返回值是新数组长度
        //原数组会改变

        //删除数组元素的方法
        //1.pop() 删除数组的最后一个元素
        arr.pop();
        console.log(arr);
        //返回值是删除的元素
        //原数组会改变
        //2.shift() 删除数组开头的第一个元素
        arr.shift();
        console.log(arr);
        //返回值是删除的元素
        //原数组会改变

        //数组排序的方法
        //1.翻转数组
        var arr2 = ['a',1,'b',2];
        console.log('翻转前');
        console.log(arr2);
        arr2.reverse();
        console.log('翻转后');
        console.log(arr2);
        //2.数组排序(冒泡排序)
        var arrNum = [2,1,4,3,7,6,9];
        console.log('排序前');
        console.log(arrNum);
        arrNum.sort();
        console.log('排序后');
        console.log(arrNum);
        //但是有个问题
        var arrNum1 = [13,4,77,1,7];
        console.log('排序前');
        console.log(arrNum1);
        arrNum1.sort();
        console.log('排序后');
        console.log(arrNum1);
        //解决(这种方法是固定的,记住就好了)
        arrNum1.sort(function(a,b){
            return a-b;
            //前面-后面=升序排序;后面-前面=降序排序
        });
        console.log('解决后');
        console.log(arrNum1);

        //获取数组中指定元素的索引的方法
        //1. indexOf();从前往后依次查找,找到返回索引,找不到返回-1
        //若有多个重复的元素,它只返回第一个满足条件的索引
        //indexOf(要查找的字符,从指定的索引开始查找)
        console.log(arrNum.indexOf(1));
        //2.lastIndexOf(); 从后往前依次查找,找到返回索引,找不到返回-1
        //若有多个重复的元素,它只返回第一个满足条件的索引
        //lastIndexOf(要查找的字符,从指定的索引开始查找)
        console.log(arrNum.lastIndexOf(1));

        //数组转换为字符串方法
        //1.toString(); 返回字符串
        var arr3 = [1,2,3];
        console.log(arr3.toString());
        //2.hoin(分隔符) 分隔符不填默认逗号
        console.log(arr3.join('-'));
    </script> 
</head>
<body>
    
</body>
</html>
 